package 启蒙阶段;

/**
 * 创建人：刘源江
 * 类描述：
 * 创建时间：2022/5/6 0:35
 **/

public class demo21final最终类 {
    //因为成员变量有默认值，被final修饰不能再次赋值，默认值一般都是0，0.0，没有意思，final修饰后需要直接在成员变量上赋值
    final int j = 666;

    public static void main(String[] args) {
        //final关键字；最终的意思，最后一个的意思
        //修饰的变量是最终变量(常量)，只能被赋值一次
        //修饰的方法是最终方法，最终方法不能被重写(最终方法表示最后一个方法，如果还被重写，那么重写的那个就是最终方法，产生矛盾)
        //修饰的类是最终类，最终类不能被继承(最终类就是最后一个类，如果还能被继承，那么继承的子类是最终类，产生矛盾)

//        Z z = new Z();
//        z.method();

        F f = new F();
        f.method();

        //final最终类修饰的变量是最终变量(也就是常量)，只能被赋值一次
        final int i = 1;
//        i = 2;//i已经被赋值1，被final修饰后就不能再次赋值
        System.out.println(i);
    }
}

final class F{//加上最终类关键字final，则父类不能被重写和继承
    public void method(){
        System.out.println("超级算法，最终的方法");
    }
}

//class Z extends F{
//    public void method(){
//        System.out.println("垃圾算法");
//    }
//}

